package pers.xiaoliang.concurrency.example.publish;

import lombok.extern.slf4j.Slf4j;
import pers.xiaoliang.concurrency.annotation.NotRecommend;
import pers.xiaoliang.concurrency.annotation.NotThreadSafe;

/**
* @description: 发布溢出(在构造方法中new内部类，在一个线程构造过程中，其它线程就看到里面了，this这个对象逸出了)
* @author: xiaoliang.liu
* @date: 2018/7/28 13:26
* @version v1.0
*/
@Slf4j
@NotThreadSafe
@NotRecommend
public class Escape {

    private int thisCanBeEscape = 0;

    public Escape() {
        new InnerClass();
    }

    /** 内部类 */
    private class InnerClass {
        public InnerClass() {
            log.info("{}", Escape.this.thisCanBeEscape);
        }
    }


    public static void main(String[] args) {
        Escape escape = new Escape();

    }
}
